import type { ComponentInternalInstance, VNode } from "vue";

// Message 组件的属性接口
export interface MessageProps{
  id: string;                   //消息的唯一标识
  message?: string | VNode;     //消息内容
  duration?: number;            //持续时间
  showClose?:boolean;           //是否显示关闭按钮
  type?: 'success'| 'info'| 'warning'| 'danger';  // 消息类型
  zIndex: number;
  offset?: number;              //偏移量
  onDestory: ()=>void;          //销毁消息的回调函数
}
// Message上下文接口，用于传递给Message组件
export interface MessageContext{
  id: string;      
  vnode: VNode;
  vm: ComponentInternalInstance;    //组件内部实例
  props: MessageProps;
  destory: ()=>void
}


// CreateMessageProps 是 MessageProps 中去除了 onDestory、id 和 zIndex 后的类型
export type CreateMessageProps = Omit<MessageProps, 'onDestory' | 'id' | 'zIndex'>
